package com.hqd.ch03.v51.context.annotation;

public interface ConfigurationCondition extends Condition {

    /**
     * 获取评估类型
     *
     * @return
     */
    ConfigurationPhase getConfigurationPhase();


    /**
     * 评估条件的各种配置阶段
     */
    enum ConfigurationPhase {

        /**
         * 如果条件不满足，整个配置类都不会被纳入容器，也就是说在解析阶段就会排除该配置
         */
        PARSE_CONFIGURATION,

        /**
         * 在注册 Bean 阶段评估条件，此时配置类已经被解析。条件只会影响具体 Bean 的注册，不会阻止整个配置类被加载
         */
        REGISTER_BEAN
    }

}
